package com.geovis.emergency.spd.biz.pc.mapper;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.geovis.emergency.spd.entity.basic.entity.PcPunch;
import com.geovis.emergency.spd.entity.mobile.pojo.vo.MobileSignInStatisticsVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 应急预案指挥模块-打卡表 Mapper 接口
 * </p>
 *
 * @author lmolong
 * @since 2022-06-21
 */
public interface PcPunchMapper extends BaseMapper<PcPunch> {

    /**
     * 查询用户某天的打卡信息
     * @param userId 用户id
     * @param pcDrillId 演练id
     * @param begin 打卡记录开始时间
     * @param end 打卡记录结束时间
     * @return
     */
    PcPunch selectUserPunch(@Param("userId") String userId, @Param("pcDrillId") String pcDrillId, @Param("begin") DateTime begin, @Param("end") DateTime end);

    /**
     * 查询统计移动端打卡记录
     * @param userId 用户id
     * @param pcDrillId 推演id
     * @param beginOfMonth 开始时间
     * @param endOfMonth 结束时间
     * @return
     */
    List<PcPunch> mobileStatistics(@Param("userId") String userId, @Param("pcDrillId") String pcDrillId, @Param("beginOfMonth") DateTime beginOfMonth, @Param("endOfMonth") DateTime endOfMonth);

    /**
     * 根据条件查询数量
     * @param pcDrillId 演练id
     * @param userId 用户id
     * @param beginOfMonth 起始时间
     * @param endOfMonth 结束时间
     * @param status 1.统计正常打卡 其他统计异常打卡
     * @return
     */
    Integer selectCountByPcDrillIdAndDate(@Param("pcDrillId") String pcDrillId, @Param("userId") String userId, @Param("beginOfMonth") DateTime beginOfMonth, @Param("endOfMonth") DateTime endOfMonth, @Param("status") String status);
}
